package com.xiaobingby.admin.sys.service.impl;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaobingby.admin.sys.dto.RolePermissionDto;
import com.xiaobingby.admin.sys.entity.RolePermission;
import com.xiaobingby.admin.sys.mapper.RolePermissionMapper;
import com.xiaobingby.admin.sys.service.IRolePermissionService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

/**
 * <p>
 * sys_role_permission 角色 权限关联表 服务实现类
 * </p>
 *
 * @author XiaoBingBy
 * @since 2018-10-29
 */
@Service
public class RolePermissionServiceImpl extends ServiceImpl<RolePermissionMapper, RolePermission> implements IRolePermissionService {

    @Override
    public boolean updateRolePermission(RolePermissionDto rolePermissionDto) {
        UpdateWrapper<RolePermission> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("role_id", rolePermissionDto.getRoleId());
        this.remove(updateWrapper);
        // 构造插入数据
        ArrayList<RolePermission> rolePermissions = new ArrayList<>();
        for (Long permId : rolePermissionDto.getPermIds()) {
            RolePermission rolePermission = new RolePermission();
            rolePermission.setRoleId(rolePermissionDto.getRoleId());
            rolePermission.setPermissionId(permId);
            rolePermissions.add(rolePermission);
        }
        if (rolePermissions.size() >= 1) {
            this.saveBatch(rolePermissions);
        }
        return true;
    }
}
